home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Languguage OS 2
/
Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO
/
language
/
parallax
/
mac_sit.hqx
/
Parallaxis 2.11
/
find.z
< prev
next >
Wrap
Text File
|
1992-01-09
|
3KB
|
100 lines
START
9 PE
4 PORTS
SCALAR I1 I1
VECTOR I2 I2 B1
1 : GOTO 20;
2 : PROC 1 VECTOR I1;
POPV VI1:1;
VI[VI1:1] := 0;
PUSHV VI1:1;
RETURN;
3 : PROC 1
SCALAR
VECTOR I3 I1; group number 1
PUSHV ADDR VI1:3;
4 : VI1:1 := ID - 1; for FIELD calculating DIMi
VI1:2 := VI1:1 MOD 3; DIM2
VI1:1 := VI1:1 / 3; DIM1
5 : VI1:3 := VI1:1 * 3;
6 : VI1:4 := VI1:2 + 1;
7 : VI1:3 := VI1:3 + VI1:4;
VI1:3 := VI1:3 + 1;
IF VI1:1 < 0 CALL 2;
IF VI1:1 > 2 CALL 2;
IF VI1:4 < 0 CALL 2;
IF VI1:4 > 2 CALL 2;
CONNECT 1 TO 2 AT VI1:3;
8 : VI1:3 := VI1:1 * 3;
9 : VI1:4 := VI1:2 - 1;
10 : VI1:3 := VI1:3 + VI1:4;
VI1:3 := VI1:3 + 1;
IF VI1:1 < 0 CALL 2;
IF VI1:1 > 2 CALL 2;
IF VI1:4 < 0 CALL 2;
IF VI1:4 > 2 CALL 2;
CONNECT 2 TO 1 AT VI1:3;
11 : VI1:4 := VI1:1 + 1;
12 : VI1:3 := VI1:4 * 3;
13 : VI1:3 := VI1:3 + VI1:2;
VI1:3 := VI1:3 + 1;
IF VI1:4 < 0 CALL 2;
IF VI1:4 > 2 CALL 2;
IF VI1:2 < 0 CALL 2;
IF VI1:2 > 2 CALL 2;
CONNECT 3 TO 4 AT VI1:3;
14 : VI1:4 := VI1:1 - 1;
15 : VI1:3 := VI1:4 * 3;
16 : VI1:3 := VI1:3 + VI1:2;
VI1:3 := VI1:3 + 1;
IF VI1:4 < 0 CALL 2;
IF VI1:4 > 2 CALL 2;
IF VI1:2 < 0 CALL 2;
IF VI1:2 > 2 CALL 2;
CONNECT 4 TO 3 AT VI1:3;
17 : POPV VI1:3;
18 : RETURN; group number : 1
19 : PROC 1; configuration : FIELD
VI0:1 := ID - 1; for FIELD calculating DIMi
VI0:2 := VI0:1 MOD 3; DIM2
VI0:1 := VI0:1 / 3; DIM1
RETURN; configuration : FIELD
20 : CALL 3; connections
21!14 : CALL 19; line 14 column 2
22!15 : VI0:3 := ID; line 15 column 4
23!18 : SI0:1 := 1; line 18 column 2
24 : SI0:2 := 2;
25!18 : IF SI0:1 > SI0:2 GOTO 37; line 18 column 2
26!19 : CALL 19; line 19 column 4
27!20 : VI0:4 := VI0:3; line 20 column 7
28!21 : PROPAGATE VI0:4 OUT 2 IN 1; line 21 column 7
29!22 : VB0:1 := VI0:4 > VI0:3; line 22 column 7
30 : IF VB0:1 CALL 32;
31 : GOTO 35;
32 : PROC 1;
33!22 : VI0:3 := VI0:4; line 22 column 30
34 : RETURN;
35 : SI0:1 := SI0:1 + 1;
36 : GOTO 25;
37!26 : SI0:1 := 1; line 26 column 2
38 : SI0:2 := 2;
39!26 : IF SI0:1 > SI0:2 GOTO 51; line 26 column 2
40!27 : CALL 19; line 27 column 4
41!28 : VI0:4 := VI0:3; line 28 column 7
42!29 : PROPAGATE VI0:4 OUT 4 IN 3; line 29 column 7
43!30 : VB0:1 := VI0:4 > VI0:3; line 30 column 7
44 : IF VB0:1 CALL 46;
45 : GOTO 49;
46 : PROC 1;
47!30 : VI0:3 := VI0:4; line 30 column 30
48 : RETURN;
49 : SI0:1 := SI0:1 + 1;
50 : GOTO 39;
51!34 : CALL 19; line 34 column 2
52 : PARALLEL 100000000;
53 : STORE VI0:3 TO SI0:1;
54 : PARALLEL 111111111;
55!35 : WRITE SI0:1 10; line 35 column 2
56 : END; FINDMAX
STOP